package com.priox.sigar.dto;

import com.priox.sigar.util.NumberUtil;

import java.math.BigDecimal;

/**
 * User: Matrix
 * Date: 19/01/13
 */
public class RepRangoCxPDTO extends ReporteItem {

    private Long id;
    private Long agrupacionId;
    private Long entidadId;
    private String entidad;
    private String acreedorClienteId;
    private String acreedorClienteNombre;

    private String codigoMoneda;
    private String nombreMoneda;
    private String entidadDetalle;
    private String sociedadNombre;
    private String grupoEmpresarialNombre;
    private String agrupacionNombre;
    //    private String tasaProvision;
    private String acreedorRazonSocial;
    private BigDecimal diferencia;
    private BigDecimal totalSap;
    private BigDecimal totalML;
    private BigDecimal totalBC;
    private BigDecimal total;
    private BigDecimal valorTipoCambio;
    private BigDecimal totalGeneralSoles;
    private BigDecimal rango1;
    private BigDecimal rango2;
    private BigDecimal rango3;
    private BigDecimal rango4;
    private BigDecimal rango5;
    private BigDecimal rango6;
    private BigDecimal rango7;
    private BigDecimal rango8;
    private BigDecimal tp1;
    private BigDecimal tp2;
    private BigDecimal tp3;
    private BigDecimal tp4;
    private BigDecimal tp5;
    private BigDecimal tp6;
    private BigDecimal tp7;
    private BigDecimal tp8;
    private BigDecimal totalGeneral;



    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getEntidad() {
        return entidad;
    }

    public void setEntidad(String entidad) {
        this.entidad = entidad;
    }

    public BigDecimal getRango1() {
        return rango1;
    }

    public BigDecimal getRango1TC() {
        return NumberUtil.nvlIsZero(rango1).multiply(NumberUtil.nvlIsZero(valorTipoCambio));
    }

    public BigDecimal getRango2TC() {
        return NumberUtil.nvlIsZero(rango2).multiply(NumberUtil.nvlIsZero(valorTipoCambio));
    }

    public BigDecimal getRango3TC() {
        return NumberUtil.nvlIsZero(rango3).multiply(NumberUtil.nvlIsZero(valorTipoCambio));
    }

    public BigDecimal getRango4TC() {
        return NumberUtil.nvlIsZero(rango4).multiply(NumberUtil.nvlIsZero(valorTipoCambio));
    }

    public BigDecimal getRango5TC() {
        return NumberUtil.nvlIsZero(rango5).multiply(NumberUtil.nvlIsZero(valorTipoCambio));
    }

    public BigDecimal getRango6TC() {
        return NumberUtil.nvlIsZero(rango6).multiply(NumberUtil.nvlIsZero(valorTipoCambio));
    }

    public BigDecimal getRango7TC() {
        return NumberUtil.nvlIsZero(rango7).multiply(NumberUtil.nvlIsZero(valorTipoCambio));
    }

    public BigDecimal getRango8TC() {
        return NumberUtil.nvlIsZero(rango8).multiply(NumberUtil.nvlIsZero(valorTipoCambio));
    }

    public BigDecimal getRango1TP() {
        return NumberUtil.nvlIsZero(rango1).multiply(NumberUtil.nvlIsZero(tp1));
    }

    public BigDecimal getRango2TP() {

        return NumberUtil.nvlIsZero(rango2).multiply(NumberUtil.nvlIsZero(tp2));
    }

    public BigDecimal getRango3TP() {
        return NumberUtil.nvlIsZero(rango3).multiply(NumberUtil.nvlIsZero(tp3));
    }

    public BigDecimal getRango4TP() {
        return NumberUtil.nvlIsZero(rango4).multiply(NumberUtil.nvlIsZero(tp4));
    }

    public BigDecimal getRango5TP() {
        return NumberUtil.nvlIsZero(rango5).multiply(NumberUtil.nvlIsZero(tp5));
    }

    public BigDecimal getRango6TP() {
        return NumberUtil.nvlIsZero(rango6).multiply(NumberUtil.nvlIsZero(tp6));
    }

    public BigDecimal getRango7TP() {
        return NumberUtil.nvlIsZero(rango7).multiply(NumberUtil.nvlIsZero(tp7));
    }

    public BigDecimal getRango8TP() {
        return NumberUtil.nvlIsZero(rango8).multiply(NumberUtil.nvlIsZero(tp8));
    }

    public void setRango1(BigDecimal rango1) {
        this.rango1 = rango1;
    }

    public BigDecimal getRango2() {
        return rango2;
    }

    public void setRango2(BigDecimal rango2) {
        this.rango2 = rango2;
    }

    public BigDecimal getRango3() {
        return rango3;
    }

    public void setRango3(BigDecimal rango3) {
        this.rango3 = rango3;
    }

    public BigDecimal getRango4() {
        return rango4;
    }

    public void setRango4(BigDecimal rango4) {
        this.rango4 = rango4;
    }

    public BigDecimal getRango5() {
        return rango5;
    }

    public void setRango5(BigDecimal rango5) {
        this.rango5 = rango5;
    }

    public BigDecimal getRango6() {
        return rango6;
    }

    public void setRango6(BigDecimal rango6) {
        this.rango6 = rango6;
    }

    public BigDecimal getTotalGeneral() {
        return NumberUtil.nvlIsZero(rango1)
                .add(NumberUtil.nvlIsZero(rango2))
                .add(NumberUtil.nvlIsZero(rango3))
                .add(NumberUtil.nvlIsZero(rango4))
                .add(NumberUtil.nvlIsZero(rango5))
                .add(NumberUtil.nvlIsZero(rango6))
                .add(NumberUtil.nvlIsZero(rango7))
                .add(NumberUtil.nvlIsZero(rango8));
    }


    public BigDecimal getTotalGeneralSoles() {
        return getTotalGeneral().multiply(valorTipoCambio);
    }

    public void setTotalGeneralSoles(BigDecimal totalGeneralSoles) {
        this.totalGeneralSoles = totalGeneralSoles;
    }

    public void setTotalGeneral(BigDecimal totalGeneral) {
        this.totalGeneral = totalGeneral;
    }

    public String getEntidadDetalle() {
        return entidadDetalle;
    }

    public void setEntidadDetalle(String entidadDetalle) {
        this.entidadDetalle = entidadDetalle;
    }

    public String getCodigoMoneda() {
        return codigoMoneda;
    }

    public void setCodigoMoneda(String codigoMoneda) {
        this.codigoMoneda = codigoMoneda;
    }

    public String getAgrupacionNombre() {
        return agrupacionNombre;
    }

    public void setAgrupacionNombre(String agrupacionNombre) {
        this.agrupacionNombre = agrupacionNombre;
    }

    public String getSociedadNombre() {
        return sociedadNombre;
    }

    public void setSociedadNombre(String sociedadNombre) {
        this.sociedadNombre = sociedadNombre;
    }

    public String getAcreedorRazonSocial() {
        return acreedorRazonSocial;
    }

    public void setAcreedorRazonSocial(String acreedorRazonSocial) {
        this.acreedorRazonSocial = acreedorRazonSocial;
    }

    public String getGrupoEmpresarialNombre() {
        return grupoEmpresarialNombre;
    }

    public void setGrupoEmpresarialNombre(String grupoEmpresarialNombre) {
        this.grupoEmpresarialNombre = grupoEmpresarialNombre;
    }

    public BigDecimal getValorTipoCambio() {
        return valorTipoCambio;
    }

    public void setValorTipoCambio(BigDecimal valorTipoCambio) {
        this.valorTipoCambio = valorTipoCambio;
    }

    public String getNombreMoneda() {
        return nombreMoneda;
    }

    public void setNombreMoneda(String nombreMoneda) {
        this.nombreMoneda = nombreMoneda;
    }

    public BigDecimal getRango7() {
        return rango7;
    }

    public void setRango7(BigDecimal rango7) {
        this.rango7 = rango7;
    }

    public BigDecimal getRango8() {
        return rango8;
    }

    public void setRango8(BigDecimal rango8) {
        this.rango8 = rango8;
    }

    public BigDecimal getTotal() {
        return total;
    }

    public void setTotal(BigDecimal total) {
        this.total = total;
    }

    public BigDecimal getTotalSap() {
        return totalSap;
    }

    public void setTotalSap(BigDecimal totalSap) {
        this.totalSap = totalSap;
    }

    public BigDecimal getDiferencia() {
        return NumberUtil.nvlIsZero(getTotalGeneral()).subtract(NumberUtil.nvlIsZero(totalSap));
    }

    public BigDecimal getDiferenciaBC() {
        return NumberUtil.nvlIsZero(getTotalML()).subtract(NumberUtil.nvlIsZero(getTotalBC()));
    }

    public void setDiferencia(BigDecimal diferencia) {
        this.diferencia = diferencia;
    }

    public Long getEntidadId() {
        return entidadId;
    }

    public void setEntidadId(Long entidadId) {
        this.entidadId = entidadId;
    }

    public Long getAgrupacionId() {
        return agrupacionId;
    }

    public void setAgrupacionId(Long agrupacionId) {
        this.agrupacionId = agrupacionId;
    }

    public BigDecimal getTp1() {
        return tp1;
    }

    public void setTp1(BigDecimal tp1) {
        this.tp1 = tp1;
    }

    public BigDecimal getTp2() {
        return tp2;
    }

    public void setTp2(BigDecimal tp2) {
        this.tp2 = tp2;
    }

    public BigDecimal getTp3() {
        return tp3;
    }

    public void setTp3(BigDecimal tp3) {
        this.tp3 = tp3;
    }

    public BigDecimal getTp4() {
        return tp4;
    }

    public void setTp4(BigDecimal tp4) {
        this.tp4 = tp4;
    }

    public BigDecimal getTp5() {
        return tp5;
    }

    public void setTp5(BigDecimal tp5) {
        this.tp5 = tp5;
    }

    public BigDecimal getTp6() {
        return tp6;
    }

    public void setTp6(BigDecimal tp6) {
        this.tp6 = tp6;
    }

    public BigDecimal getTp7() {
        return tp7;
    }

    public void setTp7(BigDecimal tp7) {
        this.tp7 = tp7;
    }

    public BigDecimal getTp8() {
        return tp8;
    }

    public void setTp8(BigDecimal tp8) {
        this.tp8 = tp8;
    }

    public BigDecimal getTotalML() {
        return totalML;
    }

    public void setTotalML(BigDecimal totalML) {
        this.totalML = totalML;
    }

    public BigDecimal getTotalBC() {
        return totalBC;
    }

    public void setTotalBC(BigDecimal totalBC) {
        this.totalBC = totalBC;
    }

    public String getAcreedorClienteId() {
        return acreedorClienteId;
    }

    public void setAcreedorClienteId(String acreedorClienteId) {
        this.acreedorClienteId = acreedorClienteId;
    }


    public String getAcreedorClienteNombre() {
        return acreedorClienteNombre;
    }

    public void setAcreedorClienteNombre(String acreedorClienteNombre) {
        this.acreedorClienteNombre = acreedorClienteNombre;
    }
}

